﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WEBRM.Dominio.Repositorios;
using WEBRM.Dominio.Servicos;
using WEBRM.Repositorio.Repositorios;
using WEBRM.Dominio.Entidades;

namespace WEBRM.WebUI
{
    public partial class frmDuvidasFrequentes : System.Web.UI.Page
    {
        private DuvidasServico _duvidasservicos;


        protected void Page_Load(object sender, EventArgs e)
        {
            AdicionarTitulosPagina();
            if (!IsPostBack)
            {
                PopulateGridView();
            }
        }


        void PopulateGridView()
        {
            _duvidasservicos = new DuvidasServico(new DuvidasRepositorio());

            gv.DataSource = _duvidasservicos.Repositorio.ObterTodos();
            gv.DataBind();
        }


        private void AdicionarTitulosPagina()
        {
            ((Site)Master).Titulo = "Dúvidas frequentes";
            ((Site)Master).Descricao = "";
        }

        protected void btnNovo_Click(object sender, EventArgs e)
        {
            NovoRegistro();
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Cancelar();
            LimpaCampos();
        }

        void NovoRegistro()
        {
            btnNovo.Visible = false;
            btnPesquisar.Visible = false;
            pnlGrid.Visible = false;
            pnlCadastro.Visible = true;
            pnlPesquisa.Visible = false;
        }

        void LimpaCampos()
        {
            txtResposta.Text = "";
            txtPergunta.Text = "";
            txtPalavrasChaves.Text = "";
        }
        void Cancelar()
        {
            btnNovo.Visible = true;
            btnPesquisar.Visible = true;
            pnlGrid.Visible = true;
            pnlCadastro.Visible = false;
            pnlPesquisa.Visible = true;
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                _duvidasservicos = new DuvidasServico(new DuvidasRepositorio());

                Duvidas entDuvidas = new Duvidas();

                entDuvidas.Pergunta = txtPergunta.Text;
                entDuvidas.Resposta = txtResposta.Text;
                entDuvidas.PalavraChave = txtPalavrasChaves.Text;
                entDuvidas.DataCadastro = DateTime.Now;
                entDuvidas.DataAtualizacao = DateTime.Now;

                _duvidasservicos.Repositorio.Salvar(entDuvidas);
                Cancelar();
                LimpaCampos();
                PopulateGridView();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            PopulateGridView();
        }

        protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int rowId = int.Parse(e.CommandArgument.ToString());

            _duvidasservicos = new DuvidasServico(new DuvidasRepositorio());

            switch (e.CommandName.ToString().ToUpper())
            {
                case "EDITAR":
                    var duvida = _duvidasservicos.Repositorio.Obter(rowId);

                    txtResposta.Text = duvida.Resposta;
                    txtPergunta.Text = duvida.Pergunta;
                    txtPalavrasChaves.Text = duvida.PalavraChave;

                    NovoRegistro();
                    break;
                case "EXCLUIR":
                    var exduvida = _duvidasservicos.Repositorio.Obter(rowId);

                    _duvidasservicos.Repositorio.Excluir(exduvida);

                    PopulateGridView();
                    break;
            }
        }
    }
}
